#ifndef KONSOLE_H
#define KONSOLE_H

#include <windows.h>

#ifdef __cplusplus
    #include <string>
    using namespace std;
#else
    #include <string.h>
    #include <stdbool.h>
#endif

#define TAB_KEY VK_TAB

#define LEFT_KEY VK_LEFT

#define RIGHT_KEY VK_RIGHT

#define UP_KEY VK_UP

#define DOWN_KEY VK_DOWN

#define ENTER_KEY VK_RETURN

#define BACKSPACE_KEY VK_BACK

#define SPACEBAR_KEY VK_SPACE

#define F1_KEY VK_F1

#define F3_KEY VK_F3

#define ESC_KEY VK_ESCAPE

#define MAX_SCREEN_BUFFER 9999

typedef INPUT_RECORD MY_INPUT_RECORD;

typedef CONSOLE_SCREEN_BUFFER_INFO MY_BUFFER_INFO;


#define KONSOLE_DLL __declspec(dllexport)

#ifdef __cplusplus
extern "C"{
#endif

MY_BUFFER_INFO KONSOLE_DLL getBufferInfo();
int KONSOLE_DLL getBufferHeight();
int KONSOLE_DLL getBufferWidth();
int KONSOLE_DLL getCursorPositionX();
int KONSOLE_DLL getCursorPositionY();
RECT KONSOLE_DLL getConsolePosition();
unsigned long KONSOLE_DLL getTextColour();
unsigned long KONSOLE_DLL getScreenColour();
int KONSOLE_DLL getVirtualKeyInput();
MY_INPUT_RECORD KONSOLE_DLL getAllInput();

void KONSOLE_DLL setBufferHeigth(int);
bool KONSOLE_DLL setConsolePosition(int,int,int,int);
void KONSOLE_DLL setTextColour(unsigned long);
void KONSOLE_DLL setCursor(bool,unsigned int);
void KONSOLE_DLL setScreenColour(unsigned long);

void KONSOLE_DLL setConsoleTitle(char []);

bool KONSOLE_DLL centerConsole(int,int);
void KONSOLE_DLL clearScreen();
void KONSOLE_DLL moveCursor(int, int);
#ifdef __cplusplus
}
#endif
#endif // KONSOLE_H


